﻿//========================================================
///JS参数规约：
///1）以ID结尾的参数一般表示传入页面控件元素的ID；
///2）以ctrl结尾的参数一般表示传入页面控件，HTML对象；
///3）以obj结尾的参数一般表示传入jQuery对象
//========================================================
/*
setDefault：是否设置为默认值，设置为默认值则忽略后面的参数设定
header：页眉内容
footer：页脚内容
bottom～top：四周的边距
*/
function printWB(setDefault,header,footer,bottom,left,right,top)
{
    var hkey_root, hkey_key
    hkey_root = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet   Explorer\\PageSetup\\ ";
    if (setDefault) {
        try {
            var RegWsh = new ActiveXObject("WScript.Shell ")
            hkey_key = "header "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&w&b页码，&p/&P")
            hkey_key = "footer "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "&u&b&d")
            hkey_key = "margin_bottom "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.75")
            hkey_key = "margin_left "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.75")
            hkey_key = "margin_right "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.75")
            hkey_key = "margin_top "
            RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, "0.75")
        } catch (e) { }
    }
    else {
    }
}
/*
初始化选择条目页面的Grid控件
1.选择页面的grid控件中每行添加属性MyID
2.选择页面使用ID为hid_selectedID的hidden控件保存选中的行MyID值
*/
function initSelectGrid()
{
    $('[MyID]').mouseover(function(){
    if($(this).attr('MyID') != $('#hid_selectedID').val())
    {
        this.lastColor = this.style.backgroundColor;
        this.style.backgroundColor = "#abcabc";
    }
    });
    $('[MyID]').mouseout(function(){
    if(this.lastColor && $(this).attr('MyID') != $('#hid_selectedID').val())
    {
        this.style.backgroundColor = this.lastColor;
    }
    });
    $('[MyID]').click(function(){
    this.style.backgroundColor = "#ddde20";
    $('#hid_selectedID').val($(this).attr('MyID'));
    $('[MyID]').mouseout();
    });
    $('[MyID]').dblclick(function(){
    $(this).click();
    window.returnValue=$(this).attr('MyID');
    window.close();
    });
    var ctrl = $('[MyID='+$('#hid_selectedID').val()+']')[0];
    if(ctrl)
    {
        ctrl.lastColor = ctrl.style.backgroundColor;
        ctrl.style.backgroundColor = "#ddde20";
    }
}
/*重置页面过滤条件控件
parentID：设定过滤控件所在的容器
*/
function resetFilterCondition(parentID) {
    var p = document.getElementById(parentID);
    if (!$.isNullOrEmpty(p)) {
        $(p).find(':text').attr('value', "");
        $(p).find('select').attr('selectedIndex',0);
    }
}
/*选择所有CheckBox
chbCtrl：触发事件的CheckBox
parentID：设定选中CheckBox所在的容器
*/
function selectAll(chbCtrl,parentID)
{
    var p = document.getElementById(parentID);
    if ($.isNullOrEmpty(p))
    {
        $(':checkbox').attr('checked', chbCtrl.checked);
    }
    else
    {
        $(p).find(':checkbox').attr('checked', chbCtrl.checked);
    }
}
function linkImg(imgCtrl)
{
    window.open(imgCtrl.src, "_blank");
}
function noImage(imgCtrl)
{
    imgCtrl.style.display = "none";
}
/*
设置页面上具有maxlength属性的textarea的内容长度限制
*/
function validateMaxLength()
{
    var max = $('textarea[maxlength]');
    //对超出长度的字符不再允许key入
    max.keypress(function(e)
    {
        var len = $(this).attr('maxlength');
        if (len > 0 && len <= this.value.length) {
            var k = window.event ? e.keyCode : e.which;
            if((k == 32) || (k == 13) || (k > 47)){
                return false;
            }
        }
    })
    //对其他方式输入的长度截断
    max.change(function()
    {
        var len = $(this).attr('maxlength');
        if (len > 0 && len < this.value.length) {
            this.value = this.value.substring(0, len);
        }
    })
    //对粘贴时的长度截断
    max.bind('paste',function()
    {
        window.setTimeout('$(\'#' + this.id + '\').trigger(\'change\')', 10)
    })
}
if (jQuery) {
    $(function() { validateMaxLength(); })
}
/*
设置页面上控件为ReadOnly
ctrlID：待设置的控件ID
*/
function setReadOnly(ctrlID)
{
    var c = document.getElementById(ctrlID);
    if (c) {
        c.readOnly = true;
    }
}
/*
设置页面上的控件的可见性
ctrlID：待设置的控件ID
show：为true则显示，false则隐藏
*/
function setVisible(ctrlID, show)
{
    var c = document.getElementById(ctrlID);
    if (c) {
        show ? $(c).show() : $(c).hide();
    }
}
/*获取控件的绝对坐标
ctrl：控件
*/
function GetAbsoluteLocationEx(ctrl)
{
    if (arguments.length != 1 || ctrl == null) {
        return null;
    }
    var elmt = ctrl;
    var offsetTop = elmt.offsetTop;
    var offsetLeft = elmt.offsetLeft;

    while (elmt = elmt.offsetParent) {
        // add this judge   
        if (elmt.style.position == 'absolute' || elmt.style.position == 'relative' || (elmt.style.overflow != 'visible' && elmt.style.overflow != '')) {
            break;
        }
        offsetTop += elmt.offsetTop;
        offsetLeft += elmt.offsetLeft;


    }
    return { Y: offsetTop, X: offsetLeft };
}
/*
jQuery加载后初始化列表页面上过滤条件的控件
*/
function initFilterControls()
{
    //隐藏特殊过滤控件
    $("*[FilterType]").hide();
    //加载过滤下拉框事件，使之能根据需要切换显示的控件
    $("*[IsFilter=True]").change(function() { showInputControl(this, false); })
    //初始化设置过滤控件的显示状态
    $("*[IsFilter=True]").each(function() { showInputControl(this, true); })
    //设置过滤控件的事件
    $("*[FilterType]").each(function() { setFilterValue(this); })
}
function showInputControl(filterCtrl, init)
{
    var p = $(filterCtrl).parent();
    var t = p.find("*[IsFilterValue=True]");
    //清空过滤文本框值
    if (!init) {
        t.val("");
    }
    t.show();
    //隐藏过滤控件
    p.find("*[FilterType]").hide();
    //选择的Value
    var vs = $(filterCtrl).find(":selected").val().split("|");
    //过滤ID
    if (vs.length > 2) {
        //找到过滤控件
        var c = p.find("*[FilterID=" + vs[2] + "]");
        var cs = p.find("*[FilterID^=" + vs[2] + "]");//兼容多级选择情况，父级ID包含子级
        if (c.size() > 0) {
            switch (c.attr("FilterType")) {
                case "DateTime":
                    c.show();
                    break;
                case "DropDown":
                    cs.show();//所有本级以上都显示出来
                    t.hide();
                    t.val(c.val());
                    if (c[0].options.length == 0) {
                        t.val("0");
                    }
                    break;
            }
        }
    }

}
function setFilterValue(ctrl)
{
    var c = $(ctrl);
    switch (c.attr("FilterType")) {
        case "DateTime":
            c.click(function()
            {
                var p = $(this).parent();
                var t = p.find("*[IsFilterValue=True]");
                HS_setDate2(t[0],this);
            });
            break;
        case "DropDown":
            c.change(function()
            {
                var p = $(this).parent();
                var f = p.find("*[IsFilter=True]");
                var vs = f.find(":selected").val().split("|");
                if (vs.length > 2) {
                    if ($(this).attr("FilterID") == vs[2]) {//当选择的过滤条件是本级时才赋值给文本框
                        var t = p.find("*[IsFilterValue=True]");
                        t.val($(this).val());
                        if (this.options.length == 0) {
                            t.val("0");
                        }
                    }
                }
            });
            break;
    }
}
/*添加iframe使用下载页下载数据
win: 页面的window对象
codificationID：法规ID
baseURL: 网站的根
*/
function downloadFile(win, codificationID, baseURL) {
    
    var ifr = window.document.createElement("iframe");
    ifr.src = baseURL + '/UI/DownloadHelp.aspx?cid=' + codificationID;
    ifr.width = 0;
    ifr.height = 0;
    ifr.style.display = "none";
    win.document.body.appendChild(ifr);
}